A relational database management system stores relational tables, which are accessed by queries according to a standard database query language (such as the Structured Query Language or SQL). Examples of SQL statements include INSERT, SELECT, UPDATE, and DELETE. The SELECT statement is used to retrieve information from the database and to organize information for presentation to a user or an application program. The INSERT statement is used to insert a row (or multiple rows) into a table. The DELETE statement is used to delete a row (or multiple rows) from a table. The UPDATE statement is used to modify or change the content of the table. When a SQL query is received by a database system, a parser interprets the query statement, checks the statement for proper SQL syntax, and evaluates it semantically.
A parser typically includes an optimizer that is able to generate multiple query plans for selection of the most efficient of the query plans. However, plans selected by an optimizer are usually dependent upon the manner in which the query is expressed; in other words, different expressions of the same query may result in generation of different plans by the optimizer. Moreover, a further issue associated with parsing a query is that there may be redundant predicates in the query. Often, an optimizer may not recognize the presence of redundant predicates. Having to process redundant predicates is wasteful of database system resources.